perm filename PRIV.FAI[SS,SYS] blob
sn#400466 filedate 1978-12-02 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE PRIV TYPE WHAT PRIVILEGES YOU HAVE
C00008 ENDMK
C⊗;
TITLE PRIV TYPE WHAT PRIVILEGES YOU HAVE
A←1
B←2
C←3
D←4
E←5
T←6
TT←7
R←10
S←11
W←12
X←13
Y←14
Z←15
P←17
DEFINE PRIVS <
;LEFT HALF
XLPRIV DAW,200000 ;DISK ABSOLUTE WRITE
XLPRIV PRO,100000 ;FILE SYSTEM RENAME PRIV
XLPRIV REA,40000 ;FILE SYSTEM READ PRIV
XLPRIV WRT,20000 ;FILE SYSTEM WRITE PRIV
XLPRIV AAO,10000 ;ACCESS ALIAS AS OWNER
XLPRIV UPG,4000 ;SELECT OTHER DPYS WITH UPGIOT
XLPRIV MES,2000 ;CAN DO TTYMES ARBITRARILY
XLPRIV DEV,400 ;CAN USE DET/ATT DEVICE COMMAND
XLPRIV SSL,100 ;CAN SET SERVICE LEVEL RESERVATION TABLE
XLPRIV ACW,40 ;CAN DO ABS MODE WRITE USING SETPR2
XLPRIV INF,20 ;CAN READ AND WRITE SPECIAL FILE INFO
XLPRIV XGP,2 ;THIS IS THE XGP FONT COMPILER
XLPRIV LUP,1 ;LOCAL USER PRIVILEGE
;RIGHT HALF
XRPRIV ATT,400000 ;ALLOWS ATTACH TO PHANTOMS
XRPRIV LIV,200000 ;DEFEATS AUTOLOGOUT, LOOKED FOR BY SPY
XRPRIV DET,100000 ;PREFER AUTODETACH TO AUTOLOGOUT
XRPRIV CSP,40 ;COMPUTER SCIENCE PERSONNEL
XRPRIV ACT,20 ;ACCOUNTING FILES GROUP
XRPRIV DEC,10 ;DEC PROPRIETARY SOFTWARE FILES GROUP
XRPRIV SCY,4 ;SECRETARY GROUP
XRPRIV SYS,2 ;SYSTEMS PROGRAMMERS GROUP
XRPRIV MAS,1 ;[1,YOURSELF] GROUP (MUST BE A RH PRIV FOR DSKSER)
>
DEFINE XLPRIV ! (NAME,BIT) <
NAME!PRV←←BIT
BIT,,'NAME'
>
DEFINE XRPRIV (NAME,BIT) <>
LHPRVS: PRIVS
NLHPRV←←.-LHPRVS
DEFINE XLPRIV (NAME,BIT) <>
DEFINE XRPRIV ! (NAME,BIT) <
NAME!PRV←←BIT
BIT,,'NAME'
>
RHPRVS: PRIVS
NRHPRV←←.-RHPRVS
GO: RESET
MOVE P,[-100,,PDL-1]
RESCAN B
RESL1: SOJL B,RESLX
INCHRW A
CAIE A,";"
JRST RESL1
SETZB C,D
RESL2: SOJL B,RESLX
INCHRW A
CAIL A,"0"
CAILE A,"9"
JRST RESL3
IMULI C,=10
ADDI C,-"0"(A)
AOJA D,RESL2
RESL3: SKIPN D
RESLX: PJOB C,
MOVEM C,JOB#
CLRBFI
OUTSTR [ASCIZ /
Passive privileges = /]
MOVEI R,0 ;ACCUMULATE UNKNOWN PRIVS
MOVSI A,1
HRR A,JOB
GETPRV A,
JUMPE A,NOPASS
PASSLP: JFFO A,PASSL1
JRST NOPAS1
PASSL1: MOVSI C,400000
MOVN B,B
LSH C,(B) ;GENERATE THE BIT
ANDCAM C,A ;TURN IT OFF IN A
PUSHJ P,PRNBIT
CAIA
JRST PASSLP
SKIPE A
OUTCHR [" "]
JRST PASSLP
NOPASS: OUTCHR ["0"]
NOPAS1: JUMPE R,NOPAS2 ;JUMP IF NO UNKNOWN PRIVS
OUTSTR [ASCIZ /; Unknown=/]
MOVE B,R
PUSHJ P,OCTHLF
NOPAS2: OUTSTR [ASCIZ /
Active privileges = /]
MOVEI R,0
HRRZ A,JOB
GETPRV A,
JUMPE A,NOACTV
ACTVLP: JFFO A,ACTVL1
JRST NOACT1
ACTVL1: MOVSI C,400000
MOVN B,B
LSH C,(B) ;GENERATE THE BIT
ANDCAM C,A ;TURN IT OFF IN A
PUSHJ P,PRNBIT
CAIA
JRST ACTVLP
SKIPE A
OUTCHR [" "]
JRST ACTVLP
NOACTV: OUTCHR ["0"]
NOACT1: JUMPE R,NOACT2 ;JUMP IF NO UNKNOWN PRIVS
OUTSTR [ASCIZ /; Unknown=/]
MOVE B,R
PUSHJ P,OCTHLF
NOACT2: OUTSTR [ASCIZ /
/]
EXIT
PRNBIT: HLLZ B,C ;LEFT HALF BITS
HRLZ C,C ;RIGHT HALF BITS
JUMPE B,PRNBTR ;JUMP IF NOT A LH BIT
MOVSI C,-NLHPRV
PRNLB1: TDNN B,LHPRVS(C)
AOBJN C,PRNLB1
JUMPGE C,PRNLB2
HRRZ T,LHPRVS(C) ;GET NAME OF PRIV
JRST OUTSIX
PRNLB2: IOR R,B ;ADD LH PRIV TO UNKNOWN PRIVS
AOS (P)
POPJ P,
PRNBTR: MOVSI B,-NRHPRV
PRNRB1: TDNN C,RHPRVS(B)
AOBJN B,PRNRB1
JUMPGE B,PRNRB2
HRRZ T,RHPRVS(B) ;GET NAME OF PRIV
JRST OUTSIX
PRNRB2: TSO R,C ;ADD RH PRIV TO UNKNOWN PRIVS
AOS (P)
POPJ P,
OCTHLF: PUSH P,B
HLRZ B,B
PUSHJ P,OCTOUT
OUTSTR [ASCIZ /,,/]
POP P,B
HRRZ B,B
OCTOUT: IDIVI B,10
JUMPE B,OCTOU1
HRLM C,(P)
PUSHJ P,OCTOUT
HLRZ C,(P)
OCTOU1: ADDI C,"0"
OUTCHR C
CPOPJ: POPJ P,
OUTSIX: JUMPE T,CPOPJ
MOVEI TT,0
ROTC T,6
JUMPE TT,OUTSIX
ADDI TT,40
OUTCHR TT
JRST OUTSIX
PDL: BLOCK 100
END GO